home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 4 / FM Towns Free Software Collection 4 - Disc 1.iso / fb386 / 25game / 25game.bas next >
BASIC Source File  |  1991-10-18  |  12KB  |  291 lines

  1. 1000   '============< Mein Program "25 ゲーム" >===================
  2. 1010 'SAVE "MAIN.BAS"
  3. 1020 '-------------------- タイトル ----------------------
  4. 1030 CLEAR:SCREEN@ 0:COLOR=(0,0):COLOR=(0,1):CLS
  5. 1040 DIM A(25),B(25),X(5,5),I(5,5),Y(5,5),N(5,5),NA(5,5),W(5,5),C(12),TEK(12),SE$(30)
  6. 1050 LOCATE 0,0,1:MOUSE 0
  7. 1060 RANDOMIZE VAL(RIGHT$(TIME$,2))
  8. 1070 WIDTH 80,25:COLOR 7:C=INT(RND(1)*6)+1:CLS
  9. 1080 COLOR 5:
  10. 1090 LOCATE 20, 5:PRINT "   222222    5           "
  11. 1100 LOCATE 20, 6:PRINT "  2     2    555555555   "
  12. 1110 LOCATE 20, 7:PRINT "  2     2    5            GAME"
  13. 1120 LOCATE 20, 8:PRINT "        2    5           "
  14. 1130 LOCATE 20, 9:PRINT "      22     5555555555  "
  15. 1140 LOCATE 20,10:PRINT "    22                5                   "
  16. 1150 LOCATE 20,11:PRINT "   22                 5                   "
  17. 1160 LOCATE 20,12:PRINT "  2222222   55555555555    by Y.Takimoto "
  18. 1180 LOCATE 20,15:COLOR 7:PRINT "    マウスの左を押して下さい。      "
  19. 1190 LOCATE 20,16:COLOR 7:PRINT "        説明は右だよ~ん               "
  20. 1200 I$=INKEY$
  21. 1210 IF MOUSE(2,0)=-1  THEN 1240 ELSE 1220
  22. 1220 IF MOUSE(2,1)=-1  THEN GOSUB *SETM:GOTO 1070 ELSE 1230
  23. 1230 C=C+1:IF C=>7 THEN C=1:GOTO 1200 ELSE 1200
  24. 1240 ' ================================================
  25. 1270 CLS:COLOR 7:FOR I=1 TO 1000:NEXT
  26. 1280 LOCATE 0,0:PRINT "先攻・後攻を決る。(左:偶数 右:奇数)"
  27. 1290 IF MOUSE(2,0)=-1 THEN DFD=1 ELSE IF MOUSE(2,1)=-1 THEN DFD=2
  28. 1300 IF DFD=1 OR DFD=2 THEN 1310 ELSE 1280
  29. 1310 RANDOMIZE VAL(RIGHT$(TIME$,2))
  30. 1320 LOCATE ,2:PRINT "マウスの両方のボタンを押してSTOP!!"
  31. 1330 ASA=INT(RND(1)*10)+1:LOCATE 19,4:PRINT ASA
  32. 1340 IF MOUSE(2,0)=-1 AND MOUSE(2,1)=-1 THEN 1350 ELSE 1330
  33. 1350 IF DFD=1 THEN FOR I=0 TO 10 STEP 2:IF ASA=I THEN SS$="YOU": PRINT "貴方が、先です。":GOTO 1380 ELSE NEXT I
  34. 1360 IF DFD=2 THEN FOR I=1 TO 10 STEP 2:IF ASA=I THEN SS$="YOU": PRINT "貴方が、先です。":GOTO 1380 ELSE NEXT I
  35. 1370 PRINT "相手が、先です。":SS$="TEK"
  36. 1380 FOR I=1 TO 5000:NEXT I
  37. 1390 '============================= Syoki Settei
  38. 1420 CLS:COLOR 7
  39. 1430 RANDOMIZE TIME:MOUSE 0:WINDOW(0,0)-(639,199)
  40. 1440 '===============  Gamen Settei
  41. 1450 X=50:Y=30:XX=1:YY=1:C=1:Z=5:F=1:SIR=1::COUNT=1:COUNT1=1:LI1=0:TLI=0:SA=1:SB=1
  42. 1460 FOR I=1 TO 12
  43. 1470  C(I)=0
  44. 1480 NEXT I
  45. 1490 FOR N=1 TO 2
  46. 1500   LINE(X+43,Y+5)-(X+101.5!*2,Y+42.5!*2),PSET,7,B
  47. 1510     FOR L=X+43 TO X+101.5!*2 STEP 16*2
  48. 1520   LINE(L,Y+5)-(L,Y+42.5!*2),PSET,7
  49. 1530 NEXT L
  50. 1540 FOR L=Y+5 TO Y+46*2 STEP 8*2
  51. 1550   LINE(X+43,L)-(X+101.5!*2,L),PSET,7
  52. 1560 NEXT L
  53. 1570 X=X+250:NEXT
  54. 1580 '================ Suji wo toricom
  55. 1590 RESTORE 3300
  56. 1600 FOR YY=1 TO 5:FOR XX=1 TO 5:READ I(XX,YY):NEXT XX,YY
  57. 1610 FOR YY=1 TO 5:FOR XX=1 TO 5:READ Y(XX,YY):NEXT XX,YY
  58. 1620 '================ Suji no irekae
  59. 1630 FOR NN=1 TO 100
  60. 1640  SW1=INT(RND(1)*5)+1:SW2=INT(RND(1)*5)+1
  61. 1650  SW3=INT(RND(1)*5)+1:SW4=INT(RND(1)*5)+1
  62. 1660  SWAP I(SW1,SW2),I(SW3,SW4)
  63. 1670 NEXT NN
  64. 1680 FOR P=12 TO 30 STEP 4:LOCATE P,Z:PRINT I(F,C):N(F,C)=0:F=F+1:NEXT P:IF Z=13 THEN 1690 ELSE Z=Z+2:F=1:P=45:C=C+1:GOTO 1680
  65. 1690 '================== Suji Print Ver 2
  66. 1700 Z=5:P=0:F=1:C=1
  67. 1710 FOR NN=1 TO 100
  68. 1720  SW5=INT(RND(1)*5)+1:SW6=INT(RND(1)*5)+1
  69. 1730  SW7=INT(RND(1)*5)+1:SW8=INT(RND(1)*5)+1
  70. 1740  SWAP Y(SW5,SW6),Y(SW7,SW8)
  71. 1750 NEXT NN
  72. 1760 FOR P=43 TO 62 STEP 4:LOCATE P,Z:COLOR 0:PRINT Y(F,C):NA(F,C)=0:COLOR 7:LOCATE P,Z:PRINT " ";:F=F+1:NEXT P:IF Z=13 THEN 1770 ELSE Z=Z+2:F=1:P=45:C=C+1:GOTO 1760
  73. 1770  '================= Game starat
  74. 1780 MOUSE 4,94,85,252,276:MOUSE 1,0,0,1
  75. 1790 IF SS$="YOU" THEN 1800 ELSE IF SS$="TEK" THEN GOTO 2080
  76. 1800 GOSUB *DEL
  77. 1810 LOCATE 5,17:COLOR 2:PRINT "貴方の番です。数字を選びマウスの左を選んで下さい。"
  78. 1820 '================== Player Hantei Ver 1
  79. 1830 X=MOUSE(0):Y=MOUSE(1)
  80. 1840 KX=(X-93)\32+1
  81. 1850 KY=(Y-84)\39+1
  82. 1860 'LOCATE 1,1:PRINT KX,KY,X,Y
  83. 1870 IF MOUSE(2,0)=-1 THEN ELSE 1830
  84. 1880 IF KX=>6 THEN KX=5 ELSE IF KY=>6 THEN KY=5
  85. 1890  SE1=I(KX,KY)
  86. 1900 FOR I=1 TO 5:FOR J=1 TO 5
  87. 1910  IF I(I,J)=SE1 THEN XX=I:YY=J:J=5:I=5
  88. 1920 NEXT J,I
  89. 1930 SY=1:SX=1:COLOR 7
  90. 1940 FOR I=1 TO 25
  91. 1950  IF A(I)=I(XX,YY) OR B(I)=I(XX,YY) THEN GOTO 1800
  92. 1960 NEXT I:A(26-COUNT)=I(XX,YY):B(26-COUNT1)=I(XX,YY)
  93. 1970 SID=1:Y1=1:NP=0:Z=5:COUNT=COUNT+1:COUNT1=COUNT1+1 '========= Player Hantei
  94. 1980 FOR NP=12 TO 30 STEP 4
  95. 1990  IF I(SID,Y1)=SE1 THEN N(SID,Y1)=1:X(XX,YY)=I(XX,YY):LOCATE NP,Z:PRINT " ":GOTO 2010 ELSE SID=SID+1:NEXT NP
  96. 2000 IF Y1=>5 THEN 2010 ELSE SID=1:Y1=Y1+1:Z=Z+2:GOTO 1980
  97. 2010 SID=1:Y1=1:NP=0:Z=5
  98. 2020 '================== Takieno hantei Ver 2
  99. 2030 FOR NP=43 TO 62 STEP 4
  100. 2040  IF Y(SID,Y1)=SE1 THEN LOCATE NP,Z:PRINT Y(SID,Y1):NA(SID,Y1)=1:W(XX,YY)=Y(XX,YY):GOTO 2060 ELSE SID=SID+1:NEXT NP
  101. 2050 IF Y1=>5 THEN 2060 ELSE SID=1:Y1=Y1+1:Z=Z+2:GOTO 2030
  102. 2060 SID=1:Y1=1:NP=0:Z=5:GOSUB *LIN.HAN
  103. 2070 '================== Tekino Suji Inputing
  104. 2080 GOSUB *DEL:GOSUB *SIKOU
  105. 2090 '================== Takieno Hantei Ver 1
  106. 2100 FOR I=1 TO 5:FOR J=1 TO 5
  107. 2110 IF Y(I,J)=SE2 THEN XX=I:YY=J:J=5:I=5
  108. 2120 NEXT J,I :R=1:BX=1:BY=1
  109. 2130 FOR I=1 TO 25
  110. 2140  IF B(I)=Y(XX,YY) OR B(I)=Y(XX,YY) THEN GOTO 2080
  111. 2150 NEXT I:B(26-COUNT1)=Y(XX,YY):A(26-COUNT)=Y(XX,YY)
  112. 2160 COUNT1=COUNT1+1:COUNT=COUNT+1 '================== Takieno Hantei Ver 2
  113. 2170 SID=1:Y1=1:NP=0:Z=5
  114. 2180 LOCATE 5,17:COLOR 2:PRINT "相手";:COLOR 7:PRINT ":数字入力";SE2
  115. 2190 FOR NP=43 TO 62 STEP 4
  116. 2200  IF Y(SID,Y1)=SE2 THEN 2210 ELSE 2220
  117. 2210  NA(SID,Y1)=1:W(XX,YY)=I(XX,YY):LOCATE NP,Z:PRINT Y(SID,Y1):GOTO 2240
  118. 2220 SID=SID+1:NEXT NP
  119. 2230 IF Y1=>5 THEN 2240 ELSE SID=1:Y1=Y1+1:Z=Z+2:GOTO 2190
  120. 2240 SID=1:Y1=1:NP=0:Z=5
  121. 2250 '================== Player Hantei Ver 1
  122. 2260 FOR I=1 TO 5:FOR J=1 TO 5
  123. 2270  IF I(I,J)=SE2 THEN XX=I:YY=J:J=5:I=5
  124. 2280 NEXT J,I
  125. 2290 SID=1:Y1=1:NP=0:Z=5 '========= player Hantei
  126. 2300 FOR NP=12 TO 30 STEP 4
  127. 2310  IF I(SID,Y1)=SE2 THEN N(SID,Y1)=1:LOCATE NP,Z:PRINT " ":GOTO 2320 ELSE SID=SID+1:NEXT NP
  128. 2320 IF Y1=>5 THEN 2330 ELSE SID=1:Y1=Y1+1:Z=Z+2:GOTO 2300
  129. 2330 SID=1:Y1=1:NP=0:Z=5:X(XX,YY)=I(XX,YY):GOSUB *LIN.HAN:GOTO 1800
  130. 2340 '=========================== Line Hantei
  131. 2350  *LIN.HAN' PLAYER HANTEI YOKO
  132. 2360 FOR I=1 TO 12:C(I)=0:TEK(I)=0:NEXT I:I=1:J=1
  133. 2370 FOR I=1 TO 5
  134. 2380  FOR J=1 TO 5
  135. 2390   C(I)=N(J,I)+C(I)
  136. 2400 NEXT J,I
  137. 2410 ' TATE
  138. 2420 FOR I=1 TO 5
  139. 2430  FOR J=1 TO 5
  140. 2440   C(I+5)=N(I,J)+C(I+5)
  141. 2450 NEXT J,I
  142. 2460 ' NANAME 1
  143. 2470 J=1:F=1
  144. 2480 FOR F=1 TO 5
  145. 2490  C(11)=N(F,F)+C(11)
  146. 2500 NEXT F
  147. 2510 ' NANAME 2
  148. 2520 FOR F=5 TO 1 STEP -1
  149. 2530  C(12)=N(F,J)+C(12):J=J+1
  150. 2540 NEXT F:I=1:FOR I=1 TO 12:TEK(I)=0:NEXT:I=0:O=1:R=1
  151. 2550 ' ===================TEKI LINE HANTEI :YOKO
  152. 2560 I=1:J=1:SA=1:SB=1:SS=1:LSM=4
  153. 2570 FOR I=1 TO 5
  154. 2580  FOR J=1 TO 5
  155. 2590   TEK(I)=NA(J,I)+TEK(I)
  156. 2600 NEXT J,I
  157. 2610 ' TATE
  158. 2620 FOR I=1 TO 5
  159. 2630  FOR J=1 TO 5
  160. 2640   TEK(I+5)=NA(I,J)+TEK(I+5)
  161. 2650 NEXT J,I
  162. 2660 ' NANAME 1
  163. 2670 J=1:F=1
  164. 2680 FOR F=1 TO 5
  165. 2690  TEK(11)=NA(F,F)+TEK(11)
  166. 2700 NEXT F
  167. 2710 J=1:R=5
  168. 2720 ' NANAME 2
  169. 2730 J=1:F=5
  170. 2740 FOR F=5 TO 1 STEP -1
  171. 2750  TEK(12)=NA(F,J)+TEK(12):J=J+1
  172. 2760 NEXT F
  173. 2770 GX=93:GY=43 '=============================== Player Hantei
  174. 2780 FOR I=1 TO 5
  175. 2790 IF C(I)=5 THEN LINE(93,GY)-(253,GY),PSET,5
  176. 2800 GY=GY+16:NEXT I:GX=110:GY=30
  177. 2810 FOR I=1 TO 5
  178. 2820  IF C(I+5)=5 THEN LINE (GX,35)-(GX,115),PSET,5
  179. 2830 GX=GX+32:NEXT I:GX=100:GY=40
  180. 2840 IF C(11)=5 THEN LINE (93,35)-(253,115),PSET,5
  181. 2850 GX=275:GY=40
  182. 2860 IF C(12)=5 THEN LINE (93,115)-(253,35),PSET,5
  183. 2870 GX=343:GY=43 '=============================== TEKI Hantei
  184. 2880 FOR I=1 TO 5
  185. 2890 IF TEK(I)=5 THEN LINE(343,GY)-(503,GY),PSET,5
  186. 2900 GY=GY+16:NEXT I:GX=360:GY=45
  187. 2910 FOR I=1 TO 5
  188. 2920  IF TEK(I+5)=5 THEN LINE(GX,35)-(GX,115),PSET,5
  189. 2930 GX=GX+32:NEXT I:GX=370:GY=40
  190. 2940 IF TEK(11)=5 THEN  LINE(343,35)-(503,115),PSET,5
  191. 2950 GX=490:GY=40
  192. 2960 IF TEK(12)=5 THEN LINE (503,35)-(343,115),PSET,5
  193. 2970 '====================================LINES NO HYOUJI
  194. 2980 LI1=0
  195. 2990 FOR I=1 TO 12
  196. 3000  IF C(I)=5 THEN LI1=LI1+1:GOTO 3020 ELSE 3060
  197. 3020  LI1$=AKCNV$(STR$(LI1))
  198. 3030  LOCATE 10,15:COLOR 2:PRINT LI1$;:COLOR 7:PRINT " ライン"
  199. 3040  IF LI1=>5 AND TLI=>5 THEN LI1=5:TLI=5:MOUSE 0:FOR I=1 TO 5000:NEXT I:CLS :PRINT "同点です。もう一度チャレンジして下さい。":COLOR 7:FOR I=1 TO 2000:NEXT:HHH=1:GOTO 3160
  200. 3050  IF LI1=>5 THEN LI1=5:MOUSE 0:FOR I=1 TO 5000:NEXT I:CLS :PRINT "貴方の勝ちです。":GOTO 3160
  201. 3060 NEXT I
  202. 3070 Z=1:TLI=0 'LINES NO HYOUJI
  203. 3080 FOR Z=1 TO 12
  204. 3090  IF TEK(Z)=5 THEN TLI=TLI+1:GOTO 3100 ELSE 3130
  205. 3100  TLI$=AKCNV$(STR$(TLI))
  206. 3110  LOCATE 40,15:COLOR 2:PRINT TLI$;:COLOR 7:PRINT " ライン"
  207. 3120  IF TLI=>5 THEN TLI=5:MOUSE 0:FOR I=1 TO 5000:NEXT I:CLS:PRINT "相手の勝ちです。":GOTO 3160
  208. 3130 NEXT Z
  209. 3140 Z=5
  210. 3150 RETURN
  211. 3160 LOCATE 15,5:COLOR 6:PRINT "結果 発表":MOUSE 0
  212. 3170 LOCATE 11,7:COLOR 7:PRINT "貴方のライン数:";AKCNV$(STR$(LI1))
  213. 3180 LOCATE 11,9:COLOR 7:PRINT "相手のライン数:";AKCNV$(STR$(TLI))
  214. 3185 LOCATE 8,13:COLOR 7:PRINT "マウスの左を押してください。"
  215. 3190 IF MOUSE(2,0)=-1 THEN MOUSE 0:CLS:MOUSE 1,0,0,1 ELSE 3190
  216. 3200 IF HHH=1 THEN RUN ELSE HHH=0
  217. 3210 LOCATE 10,5:COLOR 7:PRINT "再度、チャレンジしますか?"
  218. 3215 MOUSE 4,0,0,639,479:
  219. 3220 LINE(95,90)-(200,105),PSET,7,BF
  220. 3230 LINE(395,90)-(500,105),PSET,2,BF
  221. 3240 LOCATE 15,12:COLOR 2:PRINT "YES"
  222. 3250 LOCATE 53,12:COLOR 7:PRINT " NO "
  223. 3260 X=MOUSE(0) : Y=MOUSE(1)
  224. 3270 IF MOUSE(2,0)=-1 THEN 3280 ELSE 3260
  225. 3280 IF X=>95 AND Y=>217 AND X<=201 AND Y<=253 THEN MOUSE 0:CLS :COLOR 7:RUN ELSE IF X=>395 AND Y=>217 AND X<=500 AND Y<=253 THEN CLS :WIDTH 80,25:COLOR 7:WIDTH 80,25:GOTO *GAME_OV ELSE 3210
  226. 3290 END  '*********************** END
  227. 3300 '==================================== Suji Data
  228. 3310 DATA 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25
  229. 3320 DATA 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25
  230. 3330 '==================================== Stop Messeiji
  231. 3340 *STOPMEX
  232. 3350  END
  233. 3360  '
  234. 3370 '====================================== Sikou Ruuchin No 1
  235. 3380 *SIKOU:SA=1
  236. 3390 IF NA(3,3)=1 THEN 3400 ELSE SE2=Y(3,3):RETURN
  237. 3400 ' ------------------------------------- Yoko Sikou Ver 1
  238. 3410  FOR SA=1 TO 5
  239. 3420    IF TEK(SA)=LSM THEN SS=SA:GOTO 3440
  240. 3430  NEXT SA:SA=1:GOTO 3480
  241. 3440  FOR I=1 TO 5
  242. 3450    IF NA(I,SS)=0 THEN SE2=Y(I,SS):RETURN
  243. 3460  NEXT I
  244. 3470 '-------------------------------------- Tate Sikou Ver 1
  245. 3480  FOR SB=1 TO 5
  246. 3490    IF TEK(SB+5)=LSM THEN SS=SB:GOTO 3510
  247. 3500  NEXT SB:SA=1:GOTO 3550
  248. 3510  FOR I=1 TO 5
  249. 3520     IF NA(SS,I)=0 THEN SE2=Y(SS,I):RETURN
  250. 3530  NEXT I
  251. 3540 '-------------------------------------- M.Naname Sikou Ver 1
  252. 3550 IF TEK(11)=LSM THEN 3560 ELSE 3600
  253. 3560  FOR I=1 TO 5
  254. 3570    IF NA(I,I)=0 THEN SE2=Y(I,I):RETURN
  255. 3580  NEXT I
  256. 3590 '-------------------------------------- H.Naname Sikou Ver 1
  257. 3600 IF TEK(12)=LSM THEN SSS=1 ELSE 3640
  258. 3610  FOR I=5 TO 1 STEP -1
  259. 3620    IF NA(I,SSS)=0 THEN SE2=Y(I,SSS):RETURN ELSE SSS=SSS+1
  260. 3630  NEXT I
  261. 3640 '-------------------------------------- Hensuu Henkan
  262. 3650 LSM=LSM-1:GOTO *SIKOU
  263. 3660 '-------------------------------------- Sikou Ruuchin No.2
  264. 3670 *SETM '----------------SETUMEI SET
  265. 3680 CLS:COLOR 7
  266. 3690 SE$(1)= "******************** 25ゲームの説明 ************************"
  267. 3700 SE$(2)= "・このゲームは、マウス対応です。"
  268. 3710 SE$(3)= "・まず始めにルーレットで、先攻・後攻を決めます。"
  269. 3720 SE$(4)= "・ルーレットを止めるには、マウスの両方を押して止めます。"
  270. 3730 SE$(5)= "・数字を選ぶ時には、マウスの左で決めます。"
  271. 3740 SE$(6)= "・ゲーム終了は、 自分か相手が5ラインできたら終わりです。"
  272. 3750 SE$(7)= ""
  273. 3760 SE$(7)= "・マウスの左を押すと『もう一度チャレンジしますか?』と聞いてくる"
  274. 3770 SE$(8)= "  ので、やるなら[YES] やらないのなら[NO]を選択して、マ"
  275. 3780 SE$(9)= "  ウスの左を押して下さい。"
  276. 3790 SE$(10)=" "
  277. 3800 SE$(11)="         では、タイトルに戻ります。"
  278. 3810 SE$(12)="              マウスの左を押して下さい。"
  279. 3820 '------------------------------------------------------ GAMEN HYOUJI
  280. 3830 I=0
  281. 3840 LOCATE 8,I+3:PRINT SE$(I)
  282. 3850 PRINT : PRINT : PRINT
  283. 3860 I=I+1 : IF I>14 THEN I=0 ELSE 3840
  284. 3870 IF MOUSE(2,0)=-1 THEN RETURN ELSE 3870
  285. 3896 '
  286. 3900 *GAME_OV
  287. 3910 END
  288. 3920 *DEL
  289. 3930 LOCATE 0,17:PRINT "                                                       "
  290. 3940 RETURN
  291.